#ifndef DATABASE_PASER_H
#define DATABASE_PASER_H

#include "Tool.hpp"
#include "../base/Defind.hpp"

#include <optional>
#include <string>
#include <unordered_map>

namespace DBServer
{
namespace Database
{

using com_func_t = std::pair<int, int>;

class Paser
{
public:
    DEFAULT_NULL_CONSTUCTOR(Paser);
    NONCOPY_NONMOVE_CONSTRUCTOR(Paser);

    CommandRequest paser(std::string && command);

    std::optional<com_func_t> get_execute_func(std::string & type);

private:
    static std::unordered_map<std::string, com_func_t> command_map;
};

} // namespace Database
} // namespace DBServer


#endif